﻿var yjajax = jQuery.noConflict();
/*
var err_author = "请输入您的名字";
var err_email = "请输入正确的邮件地址";
var info_cmtsaving = "正在保存您的评论，请稍候...";
var info_cmtsaved = "评论已保存，谢谢支持:-)";
var info_cmtemailing = "正在发送邮件提醒...";
var info_cmtemailed = "邮件提醒发送完毕! ";
*/
yjajax(document).ready(function() {
	commentajaxpreview();
	commentformajax();
	var mns = yjajax("#mailnotifysetup");
	var mn = yjajax("#cmt_mail_notify");
	mns.html('邮件提醒: 开启');
	mns.removeClass();
	mns.addClass('mailnotify');
	mn.val('1');
	mns.click(function() {
		var str = '';
		var css = '';
		if (mn.val() == 1) {
			mn.val('0');
			str = '邮件提醒: 关闭';
			css = 'nomailnotify';
		} else {
			mn.val('1');
			str = '邮件提醒: 开启';
			css = 'mailnotify';
		}
		mns.html(str);
		mns.removeClass();
		mns.addClass(css);
	});
	yjajax(".comment-reply-link").click(function() {
		var cp = yjajax("#comment_preview");
		var cphtml = '';
		if (cp.length) {
			cphtml = cp.html();
			yjajax("div").remove('#comment_preview');
		}
		yjajax("#respond").before('<div id="comment_preview">'+cphtml+'</div>');
		yjajax("#commentform").find("#comment").keyup();
	});

	yjajax("#cancel-comment-reply-link").click(function() {
		var cp = yjajax("#comment_preview");
		var cphtml = '';
		if (cp.length) {
			cphtml = cp.html();
			yjajax("div").remove('#comment_preview');
		}
		cphtml = cp.find(".children").children("li").html();
		yjajax(".commentlist").after('<div id="comment_preview"><ol class="commentlist"><li class="comment even thread-even depth-1 parent">'+cphtml
				+'</li></ol></div>');
	});
});

function commentajaxpreview() {
	// insert cp
	yjajax("#respond").before('<div id="comment_preview"></div>');
	var cf = yjajax("#commentform");
	var a = cf.find("#comment");
	var e = cf.find("#email");
	var author = cf.find("#author").val();
	var email = e.val();
	var url = cf.find("#url").val();
	var comment = a.val();
	var imgsrc = 'http://www.gravatar.com/avatar/' + yj_md5(email.toLowerCase()) + '?s=45';
//		+ '&d=http://www.mathelite.cn/wp-includes/images/blank.gif';
	var oldemail = e.val();
	cf.find("input").focus(function() {
		yjajax(this).addClass('respondfocus');
	});
	cf.find("textarea").focus(function() {
		yjajax(this).addClass('respondfocus');
	});
	cf.find("input").blur(function() {
		yjajax(this).removeClass('respondfocus');
	});
	cf.find("textarea").blur(function() {
		yjajax(this).removeClass('respondfocus');
	});

	cf.find("#author").blur(function() {
		author = this.value;
		previewcomment(author, email, url, comment, imgsrc); 
	});

	cf.find("#url").blur(function() {
		url = this.value;
		previewcomment(author, email, url, comment, imgsrc); 
	});

	e.focus(function() {
		oldemail = e.val();
	});
	e.blur(function() {
		email = e.val();
		if (email != oldemail) {
		imgsrc = 'http://www.gravatar.com/avatar/' + yj_md5(email.toLowerCase()) + '?s=45';
//		+ '&d=http://www.mathelite.cn/wp-includes/images/blank.gif';
		previewcomment(author, email, url, comment, imgsrc); }
	});
	a.keyup(function() {
		comment = a.val();
		previewcomment(author, email, url, comment, imgsrc);
	});
}

function previewcomment(author, email, url, comment, imgsrc) {
		var parid = yjajax("#comment_parent").val();
		var now = new Date();
		var year = now.getFullYear();
		var month = now.getMonth() + 1;
		var date = now.getDate();
		var hour = now.getHours();
		var minute = now.getMinutes();
		var timestr = year + '年';
		if (month<10)
			timestr += '0';
		timestr += month + '月' + date + '日 ';
		if (hour<10)
			timestr += '0';
		timestr += hour + ':';
		if (minute<10)
			timestr += '0';
		timestr += minute;
		comment = comment.replace(new RegExp("\r\n", "gm"), '<br />');
		comment = comment.replace(new RegExp("\r", "gm"), '<br />');
		comment = comment.replace(new RegExp("\n", "gm"), '<br />');
		var pretxt = '';
		pretxt += '<div class="comment-body"><div class="comment-info-left">';
		pretxt += '<img alt="" src="'+imgsrc+'" height="45px" width="45px" /><br />';
		pretxt += '<a href="'+ url + '" rel="external nofollow">' + author + '</a><br />';
		pretxt += '</div><div class="comment-info-right"><span class="commentdate">';
		pretxt += timestr + '</span>';
		pretxt += '<span class="reply" style="margin-left:2em"><strong><em>评论预览</em></strong></span>';
		pretxt += '<div class="comment-text"><p>' + comment + '</p></div></div>';
		pretxt += '<div class="fixed"></div></div>';
		if (parid != null && parid != 0) {
			pretxt = '<ul class="children"><li>' + pretxt + '</li></ul>';
		} else {
			pretxt = '<ol class="commentlist"><li class="comment even thread-even depth-1 parent">' + pretxt + '</li></ol>';
		}

		var cp = yjajax("div").filter("#comment_preview");
		cp.html(pretxt);
}

function commentformajax() {
	var cf = yjajax("#commentform");
	cf.submit(function() {
		var author = cf.find("#author").val();
		var email = cf.find("#email").val();
		var url = cf.find("#url").val();
		var comment = cf.find("#comment").val();
		var imgsrc = 'http://www.gravatar.com/avatar/' + yj_md5(email.toLowerCase()) + '?s=45';
		previewcomment(author,email,url,comment,imgsrc);
		var datastr = 'author='+author+'&email='+email+'&url='+url+'&comment='+comment
				+'&comment_post_ID='+yjajax('#comment_post_ID').val()
				+'&comment_parent='+yjajax("#comment_parent").val()
				+'&cmt_mail_notify='+yjajax("#cmt_mail_notify").val();
		cf.find("*").each(function(){this.disabled = true;});
		yjajax.ajax({
			type: "POST",
			url: "../fun/postcomments.php",
			data: datastr,
			error: function(xhr) {
				var err = xhr.responseText;
//				alert(err);
				var reg = /<body.*>.*\s.*<p>(.*)<\/p>/g;
				if (!reg.test(err)) {
					alert("发生未知错误");
				} else {
					alert(RegExp.$1);
				}
				cf.find("*").each(function(){this.disabled = false;});
			},
			success: function(data, txt) {
//				alert(data);
				var prehtml = yjajax("div").filter("#comment_preview").html();
				yjajax("div").filter("#comment_preview").replaceWith(prehtml.replace('评论预览','评论已提交，谢谢你的支持！'));
				cf.find("#comment").val('');
				cf.find("*").each(function(){this.disabled = false;});
			}
		});
		// 检查输入
		return false;
	});
}

function yj_md5(sMessage) {
	function RotateLeft(lValue, iShiftBits) {
		return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits));
	}

	function AddUnsigned(lX,lY) {
		var lX8 = (lX & 0x80000000);
		var lY8 = (lY & 0x80000000);
		var lX4 = (lX & 0x40000000);
		var lY4 = (lY & 0x40000000);
		var lResult = (lX & 0x3FFFFFFF)+(lY & 0x3FFFFFFF);
		if (lX4 & lY4)
			return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
		if (lX4 | lY4) {
			if (lResult & 0x40000000)
				return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
			else
				return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
		}
		else
			return (lResult ^ lX8 ^ lY8);
	}

	function F(x,y,z) { return (x & y) | ((~x) & z); }
	function G(x,y,z) { return (x & z) | (y & (~z)); }
	function H(x,y,z) { return (x ^ y ^ z); }
	function I(x,y,z) { return (y ^ (x | (~z))); }

	function FF(a,b,c,d,x,s,ac) {
		a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
		return AddUnsigned(RotateLeft(a, s), b);
	}
	function GG(a,b,c,d,x,s,ac) {
		a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
		return AddUnsigned(RotateLeft(a, s), b);
	}
	function HH(a,b,c,d,x,s,ac) {
		a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
		return AddUnsigned(RotateLeft(a, s), b);
	}
	function II(a,b,c,d,x,s,ac) {
		a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
		return AddUnsigned(RotateLeft(a, s), b);
	}

	function ConvertToWordArray(sMessage) {
		var lWordCount;
		var lMessageLength = sMessage.length;
		var lNumberOfWords_temp1=lMessageLength + 8;
		var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1 % 64))/64;
		var lNumberOfWords = (lNumberOfWords_temp2+1)*16;
		var lWordArray=Array(lNumberOfWords-1);
		var lBytePosition = 0;
		var lByteCount = 0;
		while ( lByteCount < lMessageLength ) {
			lWordCount = (lByteCount-(lByteCount % 4))/4;
			lBytePosition = (lByteCount % 4)*8;
			lWordArray[lWordCount] = (lWordArray[lWordCount] | (sMessage.charCodeAt(lByteCount)<<lBytePosition));
			lByteCount++;
		}
		lWordCount = (lByteCount-(lByteCount % 4))/4;
		lBytePosition = (lByteCount % 4)*8;
		lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80<<lBytePosition);
		lWordArray[lNumberOfWords-2] = lMessageLength<<3;
		lWordArray[lNumberOfWords-1] = lMessageLength>>>29;
		return lWordArray;
	}
	function WordToHex(lValue) {
		var WordToHexValue="",WordToHexValue_temp="",lByte,lCount;
		for (lCount = 0;lCount<=3;lCount++) {
			lByte = (lValue>>>(lCount*8)) & 255;
			WordToHexValue_temp = "0" + lByte.toString(16);
			WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2);
		}
		return WordToHexValue;
	}

	var x=Array();
	var k,AA,BB,CC,DD,a,b,c,d;
	var S11=7, S12=12, S13=17, S14=22;
	var S21=5, S22=9 , S23=14, S24=20;
	var S31=4, S32=11, S33=16, S34=23;
	var S41=6, S42=10, S43=15, S44=21;
	x = ConvertToWordArray(sMessage);
	a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476;
	for (k=0;k<x.length;k+=16) {
		AA=a; BB=b; CC=c; DD=d;
		a=FF(a,b,c,d,x[k+0], S11,0xD76AA478);
		d=FF(d,a,b,c,x[k+1], S12,0xE8C7B756);
		c=FF(c,d,a,b,x[k+2], S13,0x242070DB);
		b=FF(b,c,d,a,x[k+3], S14,0xC1BDCEEE);
		a=FF(a,b,c,d,x[k+4], S11,0xF57C0FAF);
		d=FF(d,a,b,c,x[k+5], S12,0x4787C62A);
		c=FF(c,d,a,b,x[k+6], S13,0xA8304613);
		b=FF(b,c,d,a,x[k+7], S14,0xFD469501);
		a=FF(a,b,c,d,x[k+8], S11,0x698098D8);
		d=FF(d,a,b,c,x[k+9], S12,0x8B44F7AF);
		c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);
		b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE);
		a=FF(a,b,c,d,x[k+12],S11,0x6B901122);
		d=FF(d,a,b,c,x[k+13],S12,0xFD987193);
		c=FF(c,d,a,b,x[k+14],S13,0xA679438E);
		b=FF(b,c,d,a,x[k+15],S14,0x49B40821);
		a=GG(a,b,c,d,x[k+1], S21,0xF61E2562);
		d=GG(d,a,b,c,x[k+6], S22,0xC040B340);
		c=GG(c,d,a,b,x[k+11],S23,0x265E5A51);
		b=GG(b,c,d,a,x[k+0], S24,0xE9B6C7AA);
		a=GG(a,b,c,d,x[k+5], S21,0xD62F105D);
		d=GG(d,a,b,c,x[k+10],S22,0x2441453);
		c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681);
		b=GG(b,c,d,a,x[k+4], S24,0xE7D3FBC8);
		a=GG(a,b,c,d,x[k+9], S21,0x21E1CDE6);
		d=GG(d,a,b,c,x[k+14],S22,0xC33707D6);
		c=GG(c,d,a,b,x[k+3], S23,0xF4D50D87);
		b=GG(b,c,d,a,x[k+8], S24,0x455A14ED);
		a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905);
		d=GG(d,a,b,c,x[k+2], S22,0xFCEFA3F8);
		c=GG(c,d,a,b,x[k+7], S23,0x676F02D9);
		b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);
		a=HH(a,b,c,d,x[k+5], S31,0xFFFA3942);
		d=HH(d,a,b,c,x[k+8], S32,0x8771F681);
		c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122);
		b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C);
		a=HH(a,b,c,d,x[k+1], S31,0xA4BEEA44);
		d=HH(d,a,b,c,x[k+4], S32,0x4BDECFA9);
		c=HH(c,d,a,b,x[k+7], S33,0xF6BB4B60);
		b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);
		a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6);
		d=HH(d,a,b,c,x[k+0], S32,0xEAA127FA);
		c=HH(c,d,a,b,x[k+3], S33,0xD4EF3085);
		b=HH(b,c,d,a,x[k+6], S34,0x4881D05);
		a=HH(a,b,c,d,x[k+9], S31,0xD9D4D039);
		d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);
		c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);
		b=HH(b,c,d,a,x[k+2], S34,0xC4AC5665);
		a=II(a,b,c,d,x[k+0], S41,0xF4292244);
		d=II(d,a,b,c,x[k+7], S42,0x432AFF97);
		c=II(c,d,a,b,x[k+14],S43,0xAB9423A7);
		b=II(b,c,d,a,x[k+5], S44,0xFC93A039);
		a=II(a,b,c,d,x[k+12],S41,0x655B59C3);
		d=II(d,a,b,c,x[k+3], S42,0x8F0CCC92);
		c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D);
		b=II(b,c,d,a,x[k+1], S44,0x85845DD1);
		a=II(a,b,c,d,x[k+8], S41,0x6FA87E4F);
		d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);
		c=II(c,d,a,b,x[k+6], S43,0xA3014314);
		b=II(b,c,d,a,x[k+13],S44,0x4E0811A1);
		a=II(a,b,c,d,x[k+4], S41,0xF7537E82);
		d=II(d,a,b,c,x[k+11],S42,0xBD3AF235);
		c=II(c,d,a,b,x[k+2], S43,0x2AD7D2BB);
		b=II(b,c,d,a,x[k+9], S44,0xEB86D391);
		a=AddUnsigned(a,AA); b=AddUnsigned(b,BB); c=AddUnsigned(c,CC); d=AddUnsigned(d,DD);
	}
	var temp= WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d);
	return temp.toLowerCase();
}
